package com.lizhaoblog.pro006scheduled.common;


import com.lizhaoblog.pro006scheduled.entity.User;
import com.lowagie.text.Font;
import com.lowagie.text.*;
import com.lowagie.text.rtf.style.RtfParagraphStyle;

import java.awt.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Description:
 * User: flycloud
 * Date: 13-12-14
 * Time: 下午8:15
 */
public class WordDemo {
    public static void main(String[] args) throws IOException, DocumentException {
        WordUtilsItxt wordUtils = new WordUtilsItxt();
        wordUtils.openDocument("C:\\Users\\Administrator.PC-20200602TAZJ\\Desktop\\Word\\wordDemo.doc");
        //第一级标题样式
        RtfParagraphStyle rtfGsBt1 = RtfParagraphStyle.STYLE_HEADING_1;
        rtfGsBt1.setAlignment(Element.ALIGN_LEFT);
        rtfGsBt1.setStyle(Font.BOLD);
        rtfGsBt1.setSize(15);
        //第二级标题样式
        RtfParagraphStyle rtfGsBt2 = RtfParagraphStyle.STYLE_HEADING_2;
        rtfGsBt2.setAlignment(Element.ALIGN_LEFT);
        rtfGsBt2.setStyle(Font.NORMAL);
        rtfGsBt2.setSize(13);


        wordUtils.insertTitle("利用IText书写Word例子", 17, Font.BOLD, Element.ALIGN_CENTER);

        wordUtils.insertTitlePattern("一、基本内容",rtfGsBt1);
        wordUtils.insertTitlePatternSecond("1.1 第一小节内容", rtfGsBt2);
        wordUtils.insertContext("iText是著名的开放源码的站点sourceforge一个项目，是用于生成PDF文档的一个java类库。" +
                "通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便，" +
                "下载iText.jar文件后，只需要在系统的CLASSPATH中加入iText.jar的路径，在程序中就可以使用iText类库了。", 11, Font.NORMAL, Element.ALIGN_CENTER);
        wordUtils.insertTitlePatternSecond("1.2 第二小节内容", rtfGsBt2);
        wordUtils.insertContext("一般情况下，iText使用在有以下一个要求的项目中：\n" +
                "    内容无法提前利用：取决于用户的输入或实时的数据库信息。\n" +
                "    由于内容，页面过多，PDF文档不能手动生成。\n" +
                "    文档需在无人参与，批处理模式下自动创建。\n" +
                "    内容被定制或个性化；例如，终端客户的名字需要标记在大量的页面上。\n", 11, Font.NORMAL, Element.ALIGN_LEFT);

        wordUtils.insertTitlePattern("二、插入图片",rtfGsBt1);
        //为了方便大家使用，下面图片的路径是使用网上图片的路径，如果有需要，可以自行修改为本地路径。
        wordUtils.insertImg("C:\\Users\\Administrator.PC-20200602TAZJ\\Pictures\\Saved Pictures\\a1.jpg", Element.ALIGN_CENTER, 400, 400, 50, 50, 50, 0);

        wordUtils.insertTitlePattern("四、插入表格",rtfGsBt1);
        wordUtils.insertTitlePatternSecond("4.2 表格", rtfGsBt2);
        List<User>  ur= new ArrayList<>();
        wordUtils.getDocument().add(new WordDemo().insertTable(ur,3));
        wordUtils.closeDocument();

    }


    public Table insertTable(List<User> list,int column) throws DocumentException {
        Table table = new Table(column);//生成一个四列的表格
        int [] width = new int[column];
        for (int i = 0; i < column; i++) {
            width[i]=25;
        }
        table.setWidths(width);//设置系列所占比例
        table.setWidth(100);
        table.setAutoFillEmptyCells(true);
        table.setAlignment(Element.ALIGN_CENTER);//居中显示
        table.setAlignment(Element.ALIGN_MIDDLE);//垂直居中显示
        table.setBorder(30);
        table.setBorderWidth(230);//边框宽度
        table.setBorderColor(new Color(58, 255, 132));//边框颜色


        User us = new User();
        us.setUserId("1");
        us.setEmail("1r");
        us.setUserName("1u");
        list.add(us);
        List<User>  ur2= new ArrayList<>();
        User us2 = new User();
        us.setUserId("2");
        us.setEmail("2r");
        us.setUserName("2u");
        list.add(us2);


        for (int i = 0; i < list.size(); i++) {
            User sue = list.get(i);
            Cell cell = new Cell(new Phrase(sue.getUserId()));
            cell.setVerticalAlignment(Element.ALIGN_LEFT);
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(cell, i, 0);
            Cell cell2 = new Cell(new Phrase(sue.getUserName()));
            cell.setVerticalAlignment(Element.ALIGN_LEFT);
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.addCell(cell2, i, 1);
        }
        return table;
    }


}
